/**
 * @description 消息提示框
 * @param { Object } options 参数和 wx.showToast 参数保持一致
 */
export const toast = ({
  title = '数据加载中...',
  icon = 'none',
  duration = 2000,
  mask = true,
} = {}) => {
  wx.showToast({
    title,
    icon,
    duration,
    mask,
  })
}
/**
 * @description 封装 wx.showModal  方法
 * @param {*} options 同 wx.showModal 配置项
 */
export const modal = (options = {}) => {
  // 使用 Promise 处理 wx.showModal 的返回结果
  return new Promise((resolve) => {
    // 默认的参数
    const defaultOpt = {
      title: '提示',
      content: '您确定执行该操作吗?',
      confirmColor: '#f3514f',
    }

    // 将传入的参数和默认的参数进行合并
    const opts = Object.assign({}, defaultOpt, options)

    wx.showModal({
      // 将合并的参数赋值传递给 showModal 方法
      ...opts,
      complete({ confirm, cancel }) {
        // 如果用户点击了确定，通过 resolve 抛出 true
        // 如果用户点击了取消，通过 resolve 抛出 false
        confirm && resolve(true)
        cancel && resolve(false)
      },
    })
  })
}
// 如果有很多 .js 文件，都需要调用 toast 方法
// 每次使用都需要导入 toast，然后进行调用，太麻烦
// 可以将 toast 方法挂载到 wx 全局对象身上 I
// 如果想挂载到 wx 全局对象上这种写法生效，需要让当前文件执行一次
wx.toast = toast
wx.modal = modal
